Android : Calculatrice Complete

Créer une Calculatrice

1.Layout

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layoutDirection="rtl"
android:background="#0f0">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="4"
android:background="#F3F1F1"
android:padding="5dp">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:textSize="24dp"
android:textDirection="ltr"
android:id="@+id/textpetit"
android:text="0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:textSize="50dp"
android:textDirection="ltr"
android:textColor="#000"
android:textStyle="bold"
android:fontFamily="sans-serif"
android:id="@+id/textResultat"
android:text="0"/>

</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1"
android:background="#0ff">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F3F1F1">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1/x"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b3"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="x²"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b2"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="sqrt"
android:id="@+id/b1"
android:layout_marginLeft="5dp"
android:textSize="23dp"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="%"
android:id="@+id/b0"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>



</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="/"
android:id="@+id/b7"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="sup"
android:id="@+id/b6"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="c"
android:id="@+id/b5"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="CE"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b4"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>



</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="*"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b11"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="9"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b10"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="8"
android:layout_marginLeft="5dp"
android:id="@+id/b9"
android:textSize="25dp"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="7"
android:id="@+id/b8"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>



</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="-"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b16"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="6"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b15"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="5"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b14"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="4"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:id="@+id/b12"
android:padding="13dp"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>



</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="+"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b20"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="3"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b19"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="2"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b18"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b17"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>



</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="="
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b13"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text=","
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b23"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="0"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b22"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#F8F5F5"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="+-"
android:layout_marginLeft="5dp"
android:textSize="25dp"
android:padding="13dp"
android:id="@+id/b21"
android:fontFamily="monospace"
android:textColor="#000"
android:backgroundTint="#D4D8D8"/>



</TableRow>


</TableLayout>

</LinearLayout>

</LinearLayout>


2.Java


import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class Calculatrice extends AppCompatActivity implements View.OnClickListener{
TextView txtpetit,txtResultat;
Button[] mesbouton=new Button[24];
double a=0,b=0;
String aa="",bb="";
String operation="";
double rs=0;
String cacul="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculatrice);
//liaison entre les objets java et les objet graphiques
txtpetit=findViewById(R.id.textpetit);
txtResultat=findViewById(R.id.textResultat);
for(int i=0;i<24;i++) {
int id = getResources().getIdentifier("b"+i, "id", getPackageName());
mesbouton[i] = findViewById(id);
}

//écouter les objets
for(int i=0;i<24;i++) {
mesbouton[i].setOnClickListener(this);
}


}

@Override
public void onClick(View view) {

Button v=null;
for(int i=0;i<24;i++) {
if(mesbouton[i].getId()==view.getId())
{
v=mesbouton[i];

}
}
//on a cliquer sur un chiffre
if(StringUtils.isNumeric(v.getText()))
{
if(operation==""){
aa+=v.getText().toString();

}
else
{
bb+=v.getText().toString();

}
}

//on a cliquer sur une opération
else if(v.getText().toString()!="=" && (!v.getText().toString().equalsIgnoreCase("+-")))
{
if(operation=="")
{
operation=v.getText().toString();
}

}
if(bb=="")
{
txtResultat.setText(aa+""+operation);
}
else {
txtResultat.setText(aa + "" + operation + "" + bb);
}



if(v.getText().toString().equalsIgnoreCase("+-")) {

if(operation=="") {
if(aa.contains("-")){

aa=aa.replace("-","");
}
else
{
aa="-"+aa;
}
}
else
{
if(bb.contains("-")){

bb=bb.replace("-","");
}
else
{
bb="-"+bb;
}
}


if(bb=="")
{
txtResultat.setText(aa+""+operation);
}
else {
txtResultat.setText(aa + "" + operation + "" + bb);
}
}


if(v.getText().toString().equalsIgnoreCase("c")) {

a = 0;
b = 0;
aa = "";
bb = "";
operation = "";
rs = 0;
txtResultat.setText("");
txtpetit.setText("");
}

if(v.getText().toString().equalsIgnoreCase("=")) {

if (aa != "" || bb != "") {
if(aa!=""){
a=Double.parseDouble(aa);
}
if(bb!=""){
b=Double.parseDouble(bb);
}
switch (operation) {
case "+":
rs = a + b;
break;
case "/":
rs = a / b;
break;
case "*":
rs = a * b;
break;
case "-":
rs = a - b;
break;
case "%":
rs = a % b;
break;
case "1/x":
rs = 1 / a;
break;
case "x²":
rs = a * a;
break;
case "sqrt":
rs = Math.sqrt(a);
break;

}
}
txtResultat.setText(""+rs);
txtpetit.setText("("+aa + "" + operation + "" + bb+")="+rs);
aa="";
bb="";
a=0;
b=0;
operation="";

}
}
}